By now you know that there's two attachment types: static and dynamic. However if you statically attach an actor to a rigidbody, all fixed particles will just follow the rigidbody around without exerting any forces upon it. Which means, the actor will react to rigidbody movement but the rigidbody won't react at all to the actor.
Enter pin constraints. Pin constraints allow you to attach particles to a rigidbody, stablishing a two-way energy exchange channel: particle movements will affect the rigidbody, and rigidbody movements will affect the particle.
Like all other constraint types, you can set some per-solver global parameters for pin constraints: you can enable/disable them, set the amount of iterations spent on them, and change their relaxation factor.
Unlike most other constraint types, pin constraints aren't stored in a blueprint. They are automatically created and managed by dynamic particle attachments. However, pin constraints don't necessarily have to be associated to or managed by an attachment: you can also create pin constraints programmatically if you need, see scripting constraints for more info on creating constraints at runtime.
A good example is a wind-driven ship. The sails should follow the movement of the ship, but they also have to be able to propel the ship when the wind blows. So a good idea is to attach the sails to the ship using pin constraints.
Using dynamic attachments (pin constraints) to create a physically simulated sail.
Two particles pinned to a capsule.