The principles described in the docs section you linked apply to CMMN as well. It is actually even a little simpler, because we do not have asynchronous continuations in CMMN and the current implementation does not support timer events. That means, there is never a job that triggers something directly in a CMMN case (of course you can have a process task with async continuations that on completion continues the case).
The rollback behavior for process tasks is the same as for example for BPMN call activities. I.e. let’s imagine a user starts a process task via case service and that process task raises an exception synchronously (i.e. no wait state or async continuation in between). Then the exception bubbles up to the API call and ultimately to the user, who can then retry the action. You can then use async continuations in the called process to add a save point before any processing exceptions can occur.