I understand and it varies depending on the transaction we are doing. For example, it is obvious the we should wait for about 50 - 60 confirmation if we are dealing with a huge amount of money maybe around millions of dollars or 70 confirmations if I am selling an empty lot.
6 confirmations are definitely enough for high value transactions.
I see but I am wondering where did the second transaction go if it was the first transaction to get included in the blockchain. Why is the reseller does not receive the equivalent amount of bitcoin? Does it mean the duplicated block was sent to himself?
A transaction does not get included into the blockchain.
First, it gets broadcasted and stays in the mempool of every single node. Then a miner can include it into a block. From this moment on, this transaction is confirmed.
The transaction never was confirmed. It was just broadcasted (comparable to saying "i want to transfer X BTC to Y").
Then the attacker broadcasted another transaction with a higher fee, which ended up being included into a block.
I understand that one of the double spending attack is by increasing the tx fee of the second block. So it means there is no such thing like "cancelling the transaction" whenever it is broadcasted in the network.
The TX fee will be increased with the second transaction.
And yes, you can't actively cancel a transaction. You can try to broadcast another transaction which hopefully will get confirmed instead of the first one.