I understand that one can create a Bitcoin wallet as a pair of numbers (public & private key) with the right specifications and this is done quite easily in places like bitaddress.org
I also understand that the probability of generating two identical public keys is infinitesimally small -- lesser than the probability of being hit by an asteroid, or so I am told.
But it is not zero.
My question is - if a duplication occurs, a hash collision happens, how does the protocol (a) detect it and (b) deal with it. In a simple, everyday hash table application, we do a lookup on the existing hashed values and if we detect a collision we ignore the last created value and generate a new one.
Is there a similar protocol in bitcoin address generation?