code: def update(self, key, value):
          
          if not is_string(key):
              raise Exception("Key must be string")
  
          # if len(key) > 32:
          #     raise Exception("Max key length is 32")
  
          if not is_string(value):
              raise Exception("Value must be string")
  
          # if value == '':
          #     return self.delete(key)
          self.root_node = self._update_and_delete_storage(
              self.root_node,
              bin_to_nibbles(to_string(key)),
              to_string(value))
          self._update_root_hash()
docs: :param key: a string
          :value: a string