Beide mv en ml worden niet herkend, omdat u ze niet als variabelen hebt gedefinieerd.
Het tweede argument van execute statement is een woordenboek, en alle elementen van je gewone query "UPDATE client SET musicVol = :mv , messageVol = :ml" ontsnapt met een dubbele punt worden gezocht in de sleutels van dit woordenboek. De execute methode heeft geen sleutel gevonden 'mv' noch 'ml' in dit woordenboek, wordt daarom een fout gemaakt.
Dit is de juiste versie:
db.my_session.execute(
"UPDATE client SET musicVol = :mv, messageVol = :ml",
{'mv': music_volume, 'ml': message_volume}
)