Database#transaction now implements return values as per suggestion
 - block return value (if not nil), otherwise
 - !abort (so true if transaction committed, false if rolled back)