Programming STM32: JTAG/SWD vs bootloader
Yes. Many STM32 devices come with built-in bootloader. See the documentation on how to trigger it. This is often done by tying a pin high during power up.

You will also need to read the datasheet on how to use the SPI and UART in bootloader mode.

So yes you can program the device either using the bootloader or using SWD. 

SWD is also be used for debugging the device (e.g. single step through code, examine memory) whereas the bootloader is only for loading a program.