Locks the node, verifies the checksum, calls write_node_post_locking with all supplied arguments, unlocks the node. Returns the version of the updated node on successful writing, 0 if checksum doesn't match, -1 if the change was not applied, croaks on error.