It does have 6 physical cores on the die. There aren't any "fake" cores in the sense that they do not exist.
The debate comes where those 6 cores share resources between pairs of them, the main ones being the shared FPU and L2 cache. The whole debate that if they are "real cores" is silly. In tasks with more floating point tasks its going to behave more as a 3 core CPU. In tasks with more integer tasks, its going to behave more as a 6 core CPU.