Você entendeu. A maneira correta de iniciar, confirmar e reverter transações é a seguinte:
$this->getAdapter()->getDriver()->getConnection()->beginTransaction();
$this->getAdapter()->getDriver()->getConnection()->commit();
$this->getAdapter()->getDriver()->getConnection()->rollback();
Apenas para divulgar isso também, você também pode obter o último ID criado por:
$this->getAdapter()->getDriver()->getConnection()->getLastGeneratedValue()
Se você estiver usando pgSQL você precisará adicionar a sequência para retornar o último ID criado:
$this->getAdapter()->getDriver()->getConnection()->getLastGeneratedValue('mail_mailid_seq')