У меня так сделано в одном из проектов, наверняка можно оптимизировать, но работает
$fullarray = [.....]; //Массив с данными
$fields = ['product_id','name','group_id','manufacturer','fullname','code'];
$db = Yii::$app->db;
$sql = $db->queryBuilder->batchInsert(self::tableName(), $fields, $fullarray);
$product_insert_count = $db->createCommand($sql . ' ON DUPLICATE KEY UPDATE name = VALUES(name), group_id = VALUES(group_id), manufacturer = VALUES(manufacturer), fullname = VALUES(fullname), code = VALUES(code)')->execute();