Is there a strategy to use timestamp as primary key?
Not a good idea.

PostgreSQL provides many functions that pertain to current timestamps,


transaction_timestamp()
statement_timestamp()
clock_timestamp()
timeofday()
now()


The problem is none of these are insertion time. You have multiple backends. Each backend can process one transaction. These can transactions can start at the same time, or they can call these functions at the same time (they'll be on different threads/processes).