а если в модели надо обновить 20 параметров? Будете писать так
$author->load(Yii::$app->request->post());
$author = ArticleAuthor::findOne(['id' => $id]);
$author->load(Yii::$app->request->post());
$author = new ArticleAuthor();
$author->load(Yii::$app->request->post()); // повторюсь в n-ый раз - я передаю id тоже в запросе!!!
зачем тогда Вы его используете?
Как скрипт определит, какой id ему передан?
update()
updateAll()
А как скрипт определить, какую запись редактировать?
update article_author set ... where id = 123 # этого было бы достаточно
Не выдумывайте и не занимайтесь ерундой.
То, что Вы сейчас делаете - для создания новой записи. Для сохранения данных используйте save(), хотя и для обновления тоже надо вызывать save().