It all looks good now and it should save the XP. If it doesn't, I can only guess it might remove expired records after some time. To check this, you should keep an eye in the logs for "database cleanup" when the database closes after maps. Also checking the values of the max age cvars, there are 3 different cvars that can delete xp, with rcon can show if there are accidentally bad values in them. Those cvars are g_dbUserMaxAge, g_XPSaveMaxAge and g_XPSaveMaxAge_xp.