The reason you can say "an American" has nothing to do with a vowel or not, there are just some demonyms that for some reason can be used like this, and some that can't.
For example:
* German is countable: https://www.oxfordlearnersdictionaries.com/definition/englis... * French is uncountable: https://www.oxfordlearnersdictionaries.com/definition/englis... * American is countable: https://www.oxfordlearnersdictionaries.com/definition/englis... * Spanish is uncountable: https://www.oxfordlearnersdictionaries.com/definition/englis...
But your explanation about why it is correct is bullshit, has nothing to do with "an" vs "a", the English language is just inconsistent as fuck and some demonyms can be used like this and some can't.