Catmandu::Transactional - Optional role for transactional stores
# bag will be untouched
my $store->transaction(sub {
$store->bag('books')->add({title => 'Time must have a stop'});
die;
});
"transaction" takes a coderef that will be executed in the context of
a transaction. If an error is thrown, the transaction will rollback. If the
code executes successfully, the transaction will be committed. There is no
support for nested transactions, nested calls to "transaction" will
simply be subsumed by their parent transaction.