code: def __inner_set_default(self, key, value):
          
          path = self.__path_of(key)
  
          try:
              # Try to get and return the existing node with its data
              value, _ = self.connection.retry(self.connection.get, path)
              return self.encoding.decode(value)
          except self.no_node_error:
              # Node does not exist, we have to create it
              self.connection.retry(self.connection.create, path, self.encoding.encode(value))
              self.__increment_last_updated()
              return value
docs: Tries to return the value at key.  If the key does not exist, attempts
          to create it with the value.  If the node is created in the mean time,
          a ``NodeExistsError`` will be raised.