docs: def add_key(self, attributes, store_key):
          """Add key to the index.
  
          :param attributes: Attributes to be added to the index
          :type attributes: dict(str)
          :param store_key: The key for the document in the store
          :type store_key: str
  
          """
          undefined = False
          try:
              value = self.get_value(attributes)
          except (KeyError, IndexError):
              undefined = True
  
          # We remove old values in _reverse_index
          self.remove_key(store_key)
          if not undefined:
              if isinstance(value, (list,tuple)):
                  # We add an extra hash value for the list itself
                  # (this allows for querying the whole list)
                  values = value
                  hash_value = self.get_hash_for(value)
                  self.add_hashed_value(hash_value, store_key)
              else:
                  values = [value]
  
              for value in values:
                  hash_value = self.get_hash_for(value)
                  self.add_hashed_value(hash_value, store_key)
          else:
              self.add_undefined(store_key)