all calls to zookeeper from this function ( `task.checkpoint()`, `client.create()`, `client.set` and `task.checkpoint()` again) should be within single transaction