Yes and no.
Technically, you are wrong. Miners create blocks, and blocks introduce new coins to the system. Each unspent transaction output ("coin") is traceable to the blocks it descends from, and not further. At the level of the block chain, there is no pre-existing pile of coins, only a formula which determines how much new BTC each block is allowed to introduce. There is no bitcoin community involved here, except that our acceptance of the rules gives (real life) value to BTC.
However.
I like your way of looking at it. Since the formula for the value of coins sums up to a finite amount, you can identify the sum of the coinbases of all not-yet-mined blocks with a pile, and say miners of new blocks are allowed take from that pile, in a controlled way.
So, I applaud your effort to explain how the system works in a nice way, but maybe it can confuse people who are trying to understand it at the technical level.
It is a nice way to explain it, but when you get down to the ultra-technical level it's also a perfectly valid abstraction for what's happening. The mathematical operation miners are creating does not become a coin until its acceptance by the network. That acceptance is predicated on the priorly coded coin schedule, and thus the ultra-technical origin of coins is that schedule itself. Some edge cases that demonstrate this are:
-generate a block with a transaction awarding yourself more bitcoins than the schedule allows, and it is never accepted--you are essentially generating it for a parallel system that contains only you, so you are not the one who "makes there to be coins" in BitCoin;
-generate a block which is a perfectly valid block, only someone else generated one just before you did, and your branch gets orphaned with no ultimate award because the bitcoins are not in your block--they are awarded by the actions of the network according to the pre-coded algorithm, so you are not the one who "makes there to be coins";
-generate a block which
takes advantage of an unseen bug to give you billions of coins and get accepted into the block-chain by the code of other miners, and your coins are
still not accepted as valid--instead the code is rewritten and the block chain retroactively forked to eliminate your insertion, because ultratechnically speaking
even the coded version of the schedule is only an implementation of the actual community agreement that is BitCoin, so you are not the one who "makes there to be coins".
So technically technically technically technically, BitCoins are an idea in the minds of the community who accept them, a specific joint agreement that is
implemented in the BitCoin software and network, and via that implementation awarded
to certain miners who generate what we all deem to be valid blocks. Chances are that if someone started processing blocks without including any transactions we would deem those blocks invalid too, for example, and take measures to implement that assessment in the code of our client software.
And as just one last nail in the coffin, the code itself does not create any such thing as a bitcoin--only the right to spend one.
tl;dr: All the ways that we normally think of software are an abstraction--yet someone who says there is no such thing as a mouse pointer is wrong, because the mouse pointer
does actually exist as a defined idea in the mind of the user. The community creates BitCoins, and we award them to certain miners.