Absolutely you can do assertion based updates **on the same node**, in the same ways that you would on non-cluster, specifically:
1. using a Lua script that verifies your assertions before making the change; Lua scripts run without being interleaved with competing connections, so there is no race condition
2. using a WATCH / {assert} / MULTI / {apply} / EXEC / {check outcome} approach (WATCH / {assert} / UNWATCH if the assert fails) - this is much more complex, though; I'd lean towards Lua!
The emphasis, though, is that **any** multi-key operation in cluster (that needs to be effectively atomic) should use hash tags to ensure that the related keys are on the same slot; otherwise there is no inbuilt way to coordinate it.
Alternatively, you could implement eventual consistency yourself *without* relying on server atomicity.