Changez votre SQL
sql = 'UPDATE '+table+' SET {} WHERE cart_SN = '.format(', '.join('{}=%s'.format(k) for k in cart))+sn
Parce que dans votre cas
sql = 'UPDATE '+table+' SET {} WHERE cart_SN = '+sn+' '.format(', '.join('{}=%s'.format(k) for k in cart))
le format est appliqué à ' '.fomat()
chaîne vide et non la chaîne principale