Ya, miren, me olvide un poco de los decoradores. Voy a intentar harcelo de otra forma.
Ahora tengo lo siguiente: 
 Código PHP:
    #!/usr/bin/env python
# -*- coding: utf-8 -*
import psycopg2
class conexion(object):
    ''' clase para conectar '''
 
    def __init__(self):
        self.__host = 'localhost'
        self.__dbname = 'asdasdsad'
        self.__user = 'asdsadsa'
        self.__password = 'sadsad'
        # self.__conexion
        # self.__cursor
#------------------------------------------------------------------------------------
#--------------------------------------CONEXION--------------------------------------
#------------------------------------------------------------------------------------
    def conexionAbrir(self):
        ''' abrir conexion '''
        try:
            self.__conexion = psycopg2.connect('host='+self.__host+' dbname='+self.__dbname+' user='+self.__user+' password='+self.__password)
        except:
            return False
        return True
 
    def conexionCerrar(self):
        ''' cerrar conexion '''
        try:
            self.__conexion.close()
        except:
            return False
        return True
 
    def conexionSentencia(self, instruccion, *parametro):
        ''' ejecutar sentencia '''
        try:
            self.__cursor.execute(instruccion, parametro)
        except:
            return False
        return True
 
    def conexionCommit(self):
        try:
            self.__conexion.commit()
        except:
            return False
        return True
 
    def conexionRollback(self, commit = True):
        try:
            self.__cursor.rollback()
        except:
            return False
        return True
#------------------------------------------------------------------------------------
#---------------------------------------CURSOR---------------------------------------
#------------------------------------------------------------------------------------
    def cursorAbrir(self):
        ''' crear cursor '''
        try:
            self.__cursor = self.__conexion.cursor()
        except:
            return False
        return True
 
    def cursorCerrar(self):
        ''' cerrar cursor '''
        try:
            self.__cursor.close()
        except:
            return False
        return True
 
    def cursorFetchall(self):
        try:
            return self.__cursor.fetchall()
        except:
            return False
 
    def cursorFetchmany(self, dimension):
        try:
            return self.__cursor.fetchmany(dimension)
        except:
            return False
 
    def cursorFetchone(self):
        try:
            return self.__cursor.fetchone()
        except:
            return False
 
    def getCursor(self):
        return self.__cursor
 
    cursor = property(getCursor) 
    
   Código PHP:
    #!/usr/bin/env python
# -*- coding: utf-8 -*
from dato.conexion import conexion
class tabla1(conexion):
    ''' clase para conectar a tabla '''
 
    def __init__(self):
        conexion.__init__(self)
 
    def sentencia(self, f, *args, **kw_args):
        if conexion.conexionAbrir(self) and conexion.cursorAbrir(self):
            error = f(*args, **kw_args)
        else:
            error = True
        conexion.cursorCerrar(self)
        conexion.conexionCerrar(self)
        return error
 
    def insert(self, *informacion):
        return self.sentencia(self.__insert,*informacion)
    
    def __insert(self, *informacion):
        for i in informacion:
            conexion.conexionSentencia(self,'insert into tabla1 (informacion) VALUES (%s)',i)
        return conexion.conexionCommit(self)
 
    def update(self, *informacion, **restriccion):
        pass
 
ab = tabla1()
ab.insert("ai","oi") 
    
   Código PHP:
    #!/usr/bin/env python
# -*- coding: utf-8 -*
from dato.conexion import conexion
class tabla2(conexion):
    ''' clase para conectar a tabla '''
 
    def __init__(self):
        conexion.__init__(self)
 
    def sentencia(self, f, *args, **kw_args):
        if conexion.conexionAbrir(self) and conexion.cursorAbrir(self):
            error = f(*args, **kw_args)
        else:
            error = True
        conexion.cursorCerrar(self)
        conexion.conexionCerrar(self)
        return error
 
    def insert(self, *informacion):
        return self.sentencia(self.__insert,*informacion)
 
    def __insert(self, *informacion):
        for i in informacion:
            conexion.conexionSentencia(self,'insert into tabla2 (informacion1,informacion2,numero) VALUES (%s,%s,%s)',*i)
        return conexion.conexionCommit(self)
 
ab = tabla2()
ab.insert(("a","b",1),("c","d",2),("e","f",3)) 
    
  Basicamente cree una funcion 
sentencia, para evitarme en cada funcion en donde debiera realizar un sentencia sql el hacer
        if conexion.conexionAbrir(self) and conexion.cursorAbrir(self):
            error = trabajar(parametros)
        else:
            error = True
        conexion.cursorCerrar(self)
        conexion.conexionCerrar(self)
        return error 
 Código PHP:
        def sentencia(self, f, *args, **kw_args):
        if conexion.conexionAbrir(self) and conexion.cursorAbrir(self):
            error = f(*args, **kw_args)
        else:
            error = True
        conexion.cursorCerrar(self)
        conexion.conexionCerrar(self)
        return error 
    
  como ven, esta funcion solo recibe los parametros y el nombre de la funcion que realizará la sentencia deseada(insert,update,select...)
el problema, como verán, es que debo volver a escribir la funcion 
sentencia en cada una de la clases que son herencia de conexion(tabla1, tabla2) 
Mio duda es: ¿existe alguna manera de definir esa funcion en un solo lugar, sin tener que copiarla en cada clase hija? 
he tratado de usar wrap, meterla en la clase padre(conexion), pero no me funciona, y no se que pudiera estar haciendo mal 
No se si hay solución. Espero puedan ayudarme, y disculpen lo torpe de mi codigo(recien empeze con  python, y llevaba mucho tiempo programando en un lenguaje no orientado a objetos, o sea C) 
Saludos