code: def update(cls, schedule_id, schedule_instance_id,
                 note_attachment_schedule_instance_id, monetary_account_id=None,
                 description=None, custom_headers=None):
          
  
          if custom_headers is None:
              custom_headers = {}
  
          api_client = client.ApiClient(cls._get_api_context())
  
          request_map = {
              cls.FIELD_DESCRIPTION: description
          }
          request_map_string = converter.class_to_json(request_map)
          request_map_string = cls._remove_field_for_request(request_map_string)
  
          request_bytes = request_map_string.encode()
          endpoint_url = cls._ENDPOINT_URL_UPDATE.format(cls._determine_user_id(),
                                                         cls._determine_monetary_account_id(
                                                             monetary_account_id),
                                                         schedule_id,
                                                         schedule_instance_id,
                                                         note_attachment_schedule_instance_id)
          response_raw = api_client.put(endpoint_url, request_bytes,
                                        custom_headers)
  
          return BunqResponseInt.cast_from_bunq_response(
              cls._process_for_id(response_raw)
          )
docs: :type user_id: int
          :type monetary_account_id: int
          :type schedule_id: int
          :type schedule_instance_id: int
          :type note_attachment_schedule_instance_id: int
          :param description: Optional description of the attachment.
          :type description: str
          :type custom_headers: dict[str, str]|None
  
          :rtype: BunqResponseInt