code: def attach(self, attachments):
          
          if not is_iterable(attachments, generators_allowed=True):
              attachments = [attachments]
          for a in attachments:
              if not a.parent_item:
                  a.parent_item = self
              if self.id and not a.attachment_id:
                  # Already saved object. Attach the attachment server-side now
                  a.attach()
              if a not in self.attachments:
                  self.attachments.append(a)
docs: Add an attachment, or a list of attachments, to this item. If the item has already been saved, the
          attachments will be created on the server immediately. If the item has not yet been saved, the attachments will
          be created on the server the item is saved.
  
          Adding attachments to an existing item will update the changekey of the item.