Esse 5 aí eu abro exceções para casos que eu quero indicar atomicidade. E dependendo do caso uso o Or também.

Exemplo: createOrActivateUsers.

Exemplo2: compareAndSet, esse bem da API do Java (AtomicInteger por exemplo).

Realmente, varia de caso pra caso, mas a intenção foi pra não colocar tudo em uma mesma função dependendo do objetivo.