The transactions will always cover multiple models until you commit the transaction. I’m not sure how you are starting them, but you can do something like this and it should work over multiple models:
// Start the transaction
$transaction = Yii::app()->db->beginTransaction();
try {
// Do the updates
FirstModel::model()->update(array(...));
SecondModel::model()->update(array(...));
// Commit the transaction
$transaction->commit();
}
// Was there an error?
catch (Exception $e) {
// Error, rollback transaction
$transaction->rollback();
}