I think an exception is a perfectly fine tool to inject a different state, the alternative would be to separate indexing and unindexing, which rubs me wrong. I suggest to record the objects which need to be unindexed and bulk unindex them after the indexing has happened.