'Fetch one row, just like DB-API ``cursor.fetchone()``.
If a row is present, the cursor remains open after this is called.
Else the cursor is automatically closed and None is returned.'

def fetchone(self):

    try:
        row = self._fetchone_impl()
        if (row is not None):
            return self.process_rows([row])[0]
        else:
            self.close()
            return None
    except Exception as e:
        self.connection._handle_dbapi_exception(e, None, None, self.cursor, self.context)
