Looks correct to me. You're converting from a Java epoch timestamp (an unzoned instant-in-time, in milliseconds) to a Postgres timestamp-with-timezone (also representing an instant-in-time, at UTC), to a local timezone.
Yes, just convert it to a timestamp without selecting a timezone. to_timestamp() yields a timestamptz, which will be handed over to Ignition efficiently and correctly, for Ignition to handle timezones naturally, on a client-by-client basis.