Yeah ok that's a tricky one if you need 32 cpus but the host only has 16 actual processors.
I guess at the end of the day its going to depend on how the Database is going to be used, the only real time it will cause issues is if the VM tries to use more than 16 vCPUs at or near 100%.
If you go down the route of assigning 32, you may be better off using the PreferHT=true setting at least this will give a cleaner vNUMA to the guest and does generally preform better when over committing like this.
Yeah I think your on the right path, give the client the option, say on the host you have you can give it 32 vCPUs but you will only get 16 cores worth of performance and could lead to performance problems down the track etc etc,
You can also create it now with 32 and later down the track move it onto a larger host....
Cheers