It compares everything first (scan, diff, hash), then halts before any changes are made. You see a full summary of what will happen, and approve each category separately (copies, deletes). It's designed to be very transparent. Every change must be approved before anything is written.
Conflicts get their own interactive screen where you pick per-file: keep A, keep B, or skip. Nothing is written until you've resolved all of them.
If you want to skip the prompts, --yes flag auto-approves, but conflicts still halt for user input. Flags --force root_a or --force root_b are used for mirrors one way here conflicts are not possible.