Well, it seems like I figured it out, at least partly. Something like this seems to (almost) work:
JLinkExe -if SWD -device CY8C4247XXX-LXXX -speed 1000
The program seems to start successfully but the loadfile step gives an error message:
Downloading file [program.hex]...
Comparing flash [100%] Done.
Erasing flash [100%] Done.
Programming flash [100%] Done.
Verifying flash [100%] Done.
J-Link: Flash download: Flash programming performed for 1 range (131072 bytes)
J-Link: Flash download: Total time needed: 3.938s (Prepare: 0.288s, Compare: 0.103s, Erase: 0.057s, Program: 3.169s, Verify: 0.103s, Restore: 0.215s)
Writing target memory failed.
Again, the flashing /seems/ to work since it can start the program. But it's hard to trust this in a production setup. Anyone know why it gives an error message here?