when a violation on a constraint happens, task fail and as a result whole package fail.
you should set Failed Error Output and configure it to handle violating Unique key errors.
this is my article about how to handle the Failed Error Output:
http://www.experts-exchange.com/A_3422-How-to-handle-Failed-Rows-in-a-Data-Flow.html