Module that warns (a chatbot) about high rate of messages
is_flooding is apparently triggered by the particular user's action. However, it calls update_timer, which affects much wider community. This seems wrong. I recommend keeping each user's activity along with the user's instance, and test only her, along the lines of

def on_message_received(user):
    user.update_tally()
    if user.flooding():
        user.warn_and_ignore_message()
    else:
        user.proceed_normally()

The (anti)-idiom

    if self.dict[user] &gt; limit:
        return True
    else:
        return False


is a long way to say

    return self.dict[user] &gt; limit

The significance of 2 in dictionary updates is very unclear.