When you receive a transaction (tx) , the node validates the tx syntax - enough PoW, timestamp, value format etc.
But, you don't validate the semantics. i. e. The signature validation and accounting.
This semantic validation is done once you want to send a tx and is part of the tip selection process. You traverse the tangle in a random walk, and for each tx you meet, you may check if the cone (all the descendants of that tx) is valid, i. e. The ledger is consistent, if not you stop before it, if it is consistent, continue walking.
Nodes don't actually need to Check the whole cone, as they can have snapshots of the tangle state.
IOTA doesn't use the UTXO model, it's more like ethereum's accounting model but with the change moving to new address after each transfer.