'Add a set ZNode value to the transaction. Takes the same
arguments as :meth:`KazooClient.set`.'

def set_data(self, path, value, version=(-1)):

    if (not isinstance(path, basestring)):
        raise TypeError('path    must    be    a    string')
    if (not isinstance(value, bytes)):
        raise TypeError('value    must    be    a    byte    string')
    if (not isinstance(version, int)):
        raise TypeError('version    must    be    an    int')
    self._add(SetData(_prefix_root(self.client.chroot, path), value, version))
