code: def execute(self, fetchcommand, sql, params=None):
  		
  
  		cur = self.conn.cursor()
  		if params:
  			if not type(params).__name__ == 'tuple':
  				raise ValueError('the params argument needs to be a tuple')
  				return None
  			cur.execute(sql, params)
  		else:
  			cur.execute(sql)
  
  		self.conn.commit()
  
  		if not fetchcommand or fetchcommand == 'none':
  			return
  
  		if fetchcommand == 'last' or fetchcommand == 'lastid':
  			lastdata = cur.fetchall()
  			self.conn.commit()
  			return lastdata
  
  		m = insertion_pattern.match(sql)
  		"""
  		 TODO: This is a BUG - need to also check tail of query for RETURNING
  		"""
  		if m:
  			""" lastid = cursor.fetchone()['lastval'] """
  			lastdata = cur.fetchone()
  			self.conn.commit()
  			return lastdata
  
  		if fetchcommand == 'fetchone' or fetchcommand == 'one':
  			return cur.fetchone()
  		elif fetchcommand == 'fetchall' or fetchcommand == 'all':
  			return cur.fetchall()
  		else:
  			msg = "expecting <fetchcommand> argument to be either 'fetchone'|'one'|'fetchall|all'"
  			raise ValueError(msg)
docs: where 'fetchcommand' is either 'fetchone' or 'fetchall'