Hm, something feels odd about this as an API. It sounds like you really want to just acquire the write tx lock before running this, but you don't want the rest of the write tx overhead. But this API doesn't really lend itself to that, since you don't get the write lock with a read tx, so you just "have to be careful". Couldn't we do better than that somehow?