code: def add(self, attachments):
          
          if attachments:
              if isinstance(attachments, (str, Path)):
                  attachments = [attachments]
              if isinstance(attachments, (list, tuple, set)):
                  # User provided attachments
                  attachments_temp = [
                      self._attachment_constructor(attachment, parent=self)
                      for attachment in attachments]
              elif isinstance(attachments,
                              dict) and self._cloud_data_key in attachments:
                  # Cloud downloaded attachments. We pass on_cloud=True
                  # to track if this attachment is saved on the server
                  attachments_temp = [self._attachment_constructor(
                      {self._cloud_data_key: attachment}, parent=self,
                      on_cloud=True)
                      for attachment in
                      attachments.get(self._cloud_data_key, [])]
              else:
                  raise ValueError('Attachments must be a str or Path or a '
                                   'list, tuple or set of the former')
  
              self.__attachments.extend(attachments_temp)
              self._update_parent_attachments()
              self._track_changes()
docs: Add more attachments
  
          :param attachments: list of attachments
          :type attachments: list[str] or list[Path] or str or Path or dict