Altered Database#transaction to return the return value of the block, or...

... if this is nil, then the value of abort

Database#transaction will always now return a non-nil value, which will evaluate to true unless you deliberately
set the return value of the block to be false (which would be a bit wierd!)