I feel like transactions are not real actions in the sense READ/UPDATE/DELETE are, and IMHO passing a nullable Transaction object to the doIngest, doUpdate, doRead and doDelete would make more sense