Lorsque vous appelez PDO::beginTransaction() , il désactive la validation automatique.
Vous pouvez donc :
$db->beginTransaction();
$db->exec('LOCK TABLES t1, t2, ...');
# do something with tables
$db->commit();
$db->exec('UNLOCK TABLES');
Après un commit() ou un rollBack(), la base de données sera de retour en mode auto commit.