code: def update_attachment(self, content_id, attachment_id, attachment, callback=None):
          
          if isinstance(attachment, dict):
              assert "file" in list(attachment.keys())
          else:
              assert False
          return self._service_post_request("rest/api/content/{content_id}/child/attachment/{attachment_id}/data"
                                            "".format(content_id=content_id, attachment_id=attachment_id),
                                            headers={"X-Atlassian-Token": "nocheck"}, files=attachment,
                                            callback=callback)
docs: Update the binary data of an Attachment, and optionally the comment and the minor edit field.
  
          This adds a new version of the attachment, containing the new binary data, filename, and content-type.
  
          When updating the binary data of an attachment, the comment related to it together with the field that
          specifies if it's a minor edit can be updated as well, but are not required. If an update is considered to be a
          minor edit, notifications will not be sent to the watchers of that content.
          :param content_id (string): A string containing the id of the attachments content container.
          :param attachment_id (string): The id of the attachment to upload a new file for.
          :param attachment (dict): The dictionary describing the attachment to upload. The dict must have a key "file",
                                    which has a value that is an I/O object (file, StringIO, etc.), and can also
                                    have a "comment" key describing the attachment, and a "minorEdit" key, which is a
                                    boolean used to flag that the changes to the attachment are not substantial.
          :param callback: OPTIONAL: The callback to execute on the resulting data, before the method returns.
                           Default: None (no callback, raw data returned).
          :return: The JSON data returned from the content/{content_id}/child/attachment/{attachment_id}/data endpoint,
                   or the results of the callback. Will raise requests.HTTPError on bad input, potentially.