docs: def get_request_row_key(self, request):
          '''
          Extracts RowKey from request.body if it is a POST request or from
          request.path if it is not a POST request. Only insert operation request
          is a POST request and the Rowkey is in the request body.
  
          request:
              the request to insert, update or delete entity
          '''
          if request.method == 'POST':
              doc = ETree.fromstring(request.body)
              row_key = doc.find('./atom:content/m:properties/d:RowKey', _etree_entity_feed_namespaces)
              if row_key is None:
                  raise AzureBatchValidationError(_ERROR_CANNOT_FIND_ROW_KEY)
              return _get_etree_text(row_key)
          else:
              uri = url_unquote(request.path)
              pos1 = uri.find('RowKey=\'')
              pos2 = uri.find('\')', pos1)
              if pos1 == -1 or pos2 == -1:
                  raise AzureBatchValidationError(_ERROR_CANNOT_FIND_ROW_KEY)
              row_key = uri[pos1 + len('RowKey=\''):pos2]
              return row_key