code: def scroll(self, value, mode='relative'):
          
          self._check_executed()
          if mode == 'relative':
              r = self._rownumber + value
          elif mode == 'absolute':
              r = value
          else:
              raise ProgrammingError("unknown scroll mode %s" % mode)
  
          if not (0 <= r < len(self._rows)):
              raise IndexError("out of range")
          self._rownumber = r
  
          fut = self._loop.create_future()
          fut.set_result(None)
          return fut
docs: Scroll the cursor in the result set to a new position according
           to mode.
  
          If mode is relative (default), value is taken as offset to the
          current position in the result set, if set to absolute, value
          states an absolute target position. An IndexError should be raised in
          case a scroll operation would leave the result set. In this case,
          the cursor position is left undefined (ideal would be to
          not move the cursor at all).
  
          :param int value: move cursor to next position according to mode.
          :param str mode: scroll mode, possible modes: `relative` and `absolute`