Stores a key-value tuple in the multimap.

        **Warning: This method uses __hash__ and __eq__ methods of binary form of the key, not the actual implementations
        of __hash__ and __eq__ defined in key's class.**

        :param key: (object), the key to be stored.
        :param value: (object), the value to be stored.
        :return: (bool), ``true`` if size of the multimap is increased, ``false`` if the multimap already contains the key-value
        tuple.

def put(self, key, value):
        """
        Stores a key-value tuple in the multimap.

        **Warning: This method uses __hash__ and __eq__ methods of binary form of the key, not the actual implementations
        of __hash__ and __eq__ defined in key's class.**

        :param key: (object), the key to be stored.
        :param value: (object), the value to be stored.
        :return: (bool), ``true`` if size of the multimap is increased, ``false`` if the multimap already contains the key-value
        tuple.
        """
        check_not_none(key, "key can't be None")
        check_not_none(value, "value can't be None")
        key_data = self._to_data(key)
        value_data = self._to_data(value)
        return self._encode_invoke_on_key(multi_map_put_codec, key_data, key=key_data, value=value_data,
                                          thread_id=thread_id())