Currently only requests to write data are covered by transactions. This should be extended to requests that include as well, to guarantee that all records are in the state from before the transaction started.
Actually this is the whole reason why input and output hooks exist and can't be done externally, to be able to hook into the transaction of the running request.