Client-side. I tried editing stats in the past. Worked for like every mod-server. It's not like a simple .txt document which you can add manually. It's a .dat file I guess.
Printable View
The data file is stored client-side, @[COD4 INSTALL]/players/PROFILE NAME/mods/mod_folder name/mpdata
The data file is encrypted, but the encryption algorithm is now well known, and if you have the cheat-engine, you can edit them quite easily. However, not everyone understands it, so it's not like any old noob can open it like a text file and edit it.
And yes - you have everything correct. That should work for you nicely. Just a word of warning about using the setStat()/getStat() functions - don't do too much of it onPlayerConnect(). You will run into a notorious server crash problem - the server command overflow. This is caused by too many players using the setStat()/getStat() functions at the same time if you have >= 24 players joining the server at the same time. Try to move stuff you are doing at onPlayerConnect() to onJoinedTeam(), or better yet, onPlayerSpawned(). That way you can avoid the build-up of pending server commands.
If you usually have less than 24 players, that's fine. It is only on big servers it happens a lot.
If you have any other questions about COD4, don't hesitate to ask. I was on the mod tools team and helped build them. So, I kind of know quite a bit about how it all works, etc.
Here is a picture of me, out at the Infinity Ward Studio for the launch of COD4:
http://imageshack.us/a/img5/6158/zcdw.png
Lol that guy with the flipflops....