Who checks that for a particular transaction, your wallet has sufficient money?
Well, your "wallet ballance" is just private key with transactions not yet spend. You have for example 1 BTC. If you spend that, all money in this transaction must be used. So you could sent someone 0.5 BTC but rest of it 0.5 BTC must be sent to ur own new address as change (we skip transaction fee here).
So miners see if 0.5 + 0.5 = 1 if yes, then he accepts ur transaction, if not transaction is invalid. Simple math.