Не следует отключать автокоммит в середине соединения, так как это неожиданно и подвержено ошибкам.
Лучше всего явно запускать и завершать транзакции, используя что-то вроде этого:
$dbh->begin_work();
foreach($statement1, $statement2, $statement3) {
$dbh->execute($_)
or do { $dbh.rollback(); return -1 }
}
$dbh->commit();
begin_work()
временно отключит автокоммит до следующего коммита или отката.
Но если вы считаете, что вам действительно нужно навредить себе, Perl не остановит вас:
$dbh->{AutoCommit} = 0;