Посмотрите в сторону Transactions в yii. В результате, будет что-то типа вот этого (на работоспособность не проверял):
$author = new Author();
$post = new Post();
if (isset($_POST["Post"]) && isset($_POST["Author"])) {
$author->setAttributes($_POST["Author"]);
$post->setAttributes($_POST["Post"]);
if ($author->validate()) {
$transaction = $author->getDbConnection()->beginTransaction();
try {
$author->save();
$transaction->commit();
$post->author_id = $author->author_id;
if ($post->validate()) {
$post->save();
$transaction->commit();
}
else {
$transaction->rollback();
}
}
catch(Exception $e) {
$transaction->rollback();
}
}
}