Transfer microsecond timestamp into table using COPY
What you're trying to do is normally referred as an ETL (Extract, Transform, Load) process. 

You want to do the transformation within the database. This is normally possible by using an intermediate table, where you store (as text, most probably) the data from STDIN via libpq and COPY. 

COPY intermediate_table (orig_col1, orig_col2)
FROM stdin 
WITH FORMAT CSV  ;  -- Choose your parameters


Then transfer it to the second table by means of 

INSERT INTO 
     dest(col1,                     col2) 
SELECT    
          f1(orig_col1, orig_col2), f2(orig_col1, orig_col2) 
FROM 
     intermediate_table ;


That is, you have some transforming functions on the original data to produce the data you want to store. For instance f1 could just be your TO_TIMESTAMP(orig_col_1 ::double precision / 100000).

After transforming the data from the intermediate table(s), it is common to truncate them (or drop them, and recreate them next time).