Does this mean I can use JPA 2 to app servers that only supports J2EE 1.4?
Maybe, but not in the way you envision it. First of all, J2EE 1.4 does not support EJB 3 at all - it supports EJB 2. That means it can't use any version of JPA for container-managed persistence (JPA 1 was part of JEE 5, which introduced EJB 3).
That said, *if* the JVM supports
Java 6, then your code could use JPA 2, but not for EJBs because the container doesn't know about JPA.