Kiedy dzwonisz PDO::beginTransaction() , wyłącza automatyczne zatwierdzanie.
Możesz więc zrobić:
$db->beginTransaction();
$db->exec('LOCK TABLES t1, t2, ...');
# do something with tables
$db->commit();
$db->exec('UNLOCK TABLES');
Po commit() lub rollBack() baza danych powróci do trybu automatycznego zatwierdzania.