I agree it might be more natural to have forupdate together with the transaction. I just did it this way since it was easier, since the first object is passed to the query generator, while the second with the transaction is not. But we could just copy the options from the second into the first before invoking the query generator i guess