En transacciones el Commit() se puede usar siempre y cuando autocommit está en off.
Verifica ese detalle, porque si no, no entiendo porque no te guarda los cambios.
Para colocar el autocommit en of coloca:
$dbh->{AutoCommit} = 0;
Si quieres aprender más sobre el uso de transacciones en perl te recomiendo este PDF
http://linux.ubiobio.cl/documentacio...inoza/perl.pdf
Espero que te sirva
Saludos