code: def add_tags(self, tags, afterwards=None, remove_rest=False):
          
          def myafterwards():
              if remove_rest:
                  self._tags = set(tags)
              else:
                  self._tags = self._tags.union(tags)
              if callable(afterwards):
                  afterwards()
  
          self._dbman.tag('thread:' + self._id, tags, afterwards=myafterwards,
                          remove_rest=remove_rest)
docs: add `tags` to all messages in this thread
  
          .. note::
  
              This only adds the requested operation to this objects
              :class:`DBManager's <alot.db.DBManager>` write queue.
              You need to call :meth:`DBManager.flush <alot.db.DBManager.flush>`
              to actually write out.
  
          :param tags: a list of tags to be added
          :type tags: list of str
          :param afterwards: callback that gets called after successful
                             application of this tagging operation
          :type afterwards: callable
          :param remove_rest: remove all other tags
          :type remove_rest: bool