docs: def _execute(self, cursor, statements):
          """"
          Executes a list of statements, returning an iterator of results sets. Each 
          statement should be a tuple of (statement, params).
          """
          payload = [{'statement': s, 'parameters': p, 'resultDataContents':['rest']} for (s, p) in statements]
          http_response = self._http_req("POST", self._tx, {'statements': payload})
  
          if self._tx == TX_ENDPOINT:
              self._tx = http_response.getheader('Location')
  
          response = self._deserialize(http_response)
  
          self._handle_errors(response, cursor, cursor)
  
          return response['results'][-1]