Cambia il tuo SQL
sql = 'UPDATE '+table+' SET {} WHERE cart_SN = '.format(', '.join('{}=%s'.format(k) for k in cart))+sn
Perché nel tuo caso
sql = 'UPDATE '+table+' SET {} WHERE cart_SN = '+sn+' '.format(', '.join('{}=%s'.format(k) for k in cart))
il formato viene applicato a ' '.fomat()
stringa vuota non la stringa principale