@Override public Document findOneAndUpdate(Bson arg0, Bson arg1, FindOneAndUpdateOptions arg2) { if (tx.started()) { tx.beforeUpdateOne(coll, arg0); return tx.getTxCollection().findOneAndUpdate(modifyQuery(arg0), arg1, arg2); } else { return coll.findOneAndUpdate(arg0, arg1, arg2); } }