In addition to ordinary persistent tables, you can also create temporary tables.
PostgreSQL may use temporary files for query processing if it can't fit all the necessary data into memory.
So, how do you find out how much data is being used by temporary tables and files? You can do this by using any untrusted embedded language, or directly on the database host.