def METHOD_NAME(self, content, force_update):
    # No need to re-send the same content
    if not force_update and hash(content) == self.message_content_hash:
        return None
    # Assert the same type of contents to send, as in initialization
    message_type = 'text' if isinstance(content, str) else 'media'
    if self.message_type and self.message_type != message_type:
        raise TypeError('Sending different types of content in the same message is not allowed!')
    # First message: initialization
    if self.message_id is None:
        if message_type == 'text':
            response = self.post('sendMessage', text=content,
                                 disable_notification=self.silent, parse_mode='MarkdownV2')
        else:
            data = self.content_to_dict(content)
            response = self.post('sendMediaGroup', **data,
                                 disable_notification=self.silent)
        response_ = json.loads(response.data.decode())['result']
        response_ = response_[0] if isinstance(response_, list) else response_
        self.message_id = response_['message_id']
        self.message_type = message_type
    # Subsequent messages: updating contents by editing the message
    else:
        if message_type == 'text':
            response = self.post('editMessageText', text=content,
                                 message_id=self.message_id, parse_mode='MarkdownV2')
        else:
            data = self.content_to_dict(content, group=False)
            response = self.post('editMessageMedia', **data,
                                 message_id=self.message_id)
    self.message_content_hash = hash(content)
    return response