Not completely. Those posts are useful in that they discuss some of the "how" but not necessarily the "why" I would choose one over the other.
puart_print will only print a string - until a null character.
puart_write will only write a byte.
puart_synchrononusWrite - Keeps writing and might overflow and missing bytes - Not preferred.
puart_synchronousWrite - will essentially write a series of bytes, but unless you implement some form of flow control external, it will overflow the buffer and could cause bytes to be lost.
puart_write on the other hand will write one byte at a time, check the buffer, then write the next byte in a loop manner.
As JT mentions above, puart_write is almost always preferred over puart_synchronousWrite.