Only transactions that are in a block on the blockchain are permanent (and really only for sure if there are a few blocks on top of the block the tx is in). So when you broadcast a transaction it does not go immediately into a block. It sits in what is called the mempool of bitcoin nodes that receive that broadcast. Only later when the transaction has been put into a block and the block has been broadcasted and accepted by the network does the transaction become fixed and typically after a few blocks have been made on top of that block do we consider it permanent and irreversible.
So, it means that the merchant wouldn't be able to make another txn with the bitcoin that I gave him until unless there is at-least one confirmation..?
And as long as there is no confirmation, my public key won't get debited and I can create another txn to someone else..?