code: def _update(self, message, clean_ctrl_chars=True, commit=None, softCommit=False, waitFlush=None, waitSearcher=None,
                  overwrite=None, handler='update'):
          
  
          # Per http://wiki.apache.org/solr/UpdateXmlMessages, we can append a
          # ``commit=true`` to the URL and have the commit happen without a
          # second request.
          query_vars = []
  
          path_handler = handler
          if self.use_qt_param:
              path_handler = 'select'
              query_vars.append('qt=%s' % safe_urlencode(handler, True))
  
          path = '%s/' % path_handler
  
          if commit is None:
              commit = self.always_commit
  
          if commit:
              query_vars.append('commit=%s' % str(bool(commit)).lower())
          elif softCommit:
              query_vars.append('softCommit=%s' % str(bool(softCommit)).lower())
  
          if waitFlush is not None:
              query_vars.append('waitFlush=%s' % str(bool(waitFlush)).lower())
  
          if overwrite is not None:
              query_vars.append('overwrite=%s' % str(bool(overwrite)).lower())
  
          if waitSearcher is not None:
              query_vars.append('waitSearcher=%s' % str(bool(waitSearcher)).lower())
  
          if query_vars:
              path = '%s?%s' % (path, '&'.join(query_vars))
  
          # Clean the message of ctrl characters.
          if clean_ctrl_chars:
              message = sanitize(message)
  
          return self._send_request('post', path, message, {'Content-type': 'text/xml; charset=utf-8'})
docs: Posts the given xml message to http://<self.url>/update and
          returns the result.
  
          Passing `clean_ctrl_chars` as False will prevent the message from being cleaned
          of control characters (default True). This is done by default because
          these characters would cause Solr to fail to parse the XML. Only pass
          False if you're positive your data is clean.