Quando chiami PDO::beginTransaction() , disattiva il commit automatico.
Quindi puoi fare:
$db->beginTransaction();
$db->exec('LOCK TABLES t1, t2, ...');
# do something with tables
$db->commit();
$db->exec('UNLOCK TABLES');
Dopo un commit() o rollBack(), il database tornerà in modalità di commit automatico.