It all depends on the state that is returned from the server. If the server returns conflicting data, the TreeView resolves the conflict based on the actions of the user (i.e. if the user has clicked, then it is likely that the user needs that selection. You can send requests to the server on each checkbox check, and that will make the server state closer to what the user expects -- i.e. unless another user modifies the state at the same time, it will be what the user expects. To handle conflicts manually, you can declare a custom transport (set read as a function), fetch levels via an $.ajax call, and show a message to the user if there is conflicting state between the items coming from the server and the ones in the TreeView.
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI