Appending unique data to a postgres table
First of all I don't know Python, so I will try my best.

For the first portion of code, why do you put 7 days as offset? If the file delays more than 7 days your script will crash. I would do a SQL query for that. One like this:

Select max(report_date) from table; 


and now you have the latest date.

For the second part your code seems ok, but personally I don't see the reason to update the whole month every day, that will be problematic. 

For me, the best solution is find the latest date, I gave you the query up there, and after that advance day by day looking for files up to today.