Ciao,
ho provato a spostare $dbh->beginTransaction(); prima del try anche se in tutti gli esempi che ho visto online, si trova sempre all'interno.
Ho verificato se la connessione al database avviene regolarmente. Ne sono sicuro, perché sono riuscito a fare una select,
una insert e una update al di fuori della "try".

Ho pensato.....
Fino ad oggi ho usato le transaction PDO con i database mysql; ricordo che le transaction funzionano solo con i database di tipo InnoDB ... con i MyISAM non funzionavano ... sbaglio?

Adesso mi trovo a dover interagire con un database access con estensione .mdb; è possibile che non accetti le transaction?
grazie.