When exactly an entry is removed or added to the UTXO's set in the Bitcoin core? I do have this implementation question and wanted to know how it's implemented specifically in the Bitcoin core.

1. When exactly an entry is added to the set of unspent transactions outputs?
Is it when a block is persisted (added to the bchain) after being validated and then all the utxo from its txs are added to the utxo set?

2. When exactly an entry is removed from the set of unspent transactions outputs? 
Does the bitcoin core remove a spent utxo when validating a standalone transaction ? Or is it done on block persistence ?

3. Whats' the difference between validating  a transaction that is validated in block (case of a relayed block) and a transaction that is validated standalone (case of a relayed transaction).
When exactly an entry is added to the set of unspent transactions outputs?
  
  When exactly an entry is removed from the set of unspent transactions outputs?


The answer to these questions is that there is no singular set of unspent transaction outputs. There are multiple versions that are maintained and/or implied for different purposes.

1) There is the UTXO set defined by the on-disk LevelDB database. This only changes after a flush (see further).

2) There is the UTXO set defined by the in-memory cache (the pcoinsTip object). It represents the state of the network at the current best block, but does not include the effect of any unconfirmed transactions. Whenever the number of changes in this cache grows too big (see -dbcache) it gets flushed to disk.

3) There is the UTXO set defined by the memory pool. It consists of the UTXO set defined in 2, plus all outputs created by unconfirmed transactions, minus all outputs spent by unconfirmed transactions. This changes every time the mempool changes. Note that this UTXO set is nowhere materialized explicitly - it's just defined by what is in the cache (see 2) and unconfirmed transactions in the mempool.


  Whats' the difference between validating a transaction that is validated in block (case of a relayed block) and a transaction that is validated standalone (case of a relayed transaction).


From the top of my head:


Only consensus rules are validated, not policy/standardness rules
All scripts are validated in parallel (on multiple CPU cores)
The changes are flushed to pcoinsTip (and possibly to disk)