My fix as i think ;-)

In this example i think try & catch blocks should be outside txn because this exceptions are raised in _rollback ( https://metacpan.org/source/DWHEELER/DBIx-Connector-0.53/lib/DBIx/Connector.pm, line 215 ) after execution txn block but not in inside user's block (unless txn block has inside other txn block but i think this example not about this cause)