Всъщност PDO::beginTransaction() следва същите правила като START TRANSACTION изявление в MySQL, повече информация тук
.
Това означава, че MySQL няма да заключи таблицата незабавно, а ще следва ACID правила.
Имайте предвид, че ако трябва изрично да заключите някои таблици, можете да направите:
$db->beginTransaction();
$db->exec('LOCK TABLES t1, t2, ...');