This means your table is not having primary or unique key. pt-table-sync uses REPLACE query to synchronize data from master to slave. In absence of primary or unique key it will be normal INSERT which means it can’t be run from master. You need to make changes directly on slave via option --no-check-slave.
By default pt-table-sync synchronizes the data from master to slave via --sync-to-master option. It runs REPLACE queries which will not affect master and through replication those queries runs on slave and changes data safely on slave. Let me quote relevant paragraph from the documentation.
“This tool changes data, so for maximum safety, you should back up your data before using it. When synchronizing a server that is a replication slave with the –replicate or –sync-to-master methods, it always makes the changes on the replication master, never the replication slave directly. This is in general the only safe way to bring a replica back in sync with its master; changes to the replica are usually the source of the problems in the first place. However, the changes it makes on the master should be no-op changes that set the data to their current values, and actually affect only the replica.”
For the First question, you will find details under REPLICATION SAFETY in pt-table-sync documentation here http://www.percona.com/doc/percona-toolkit/2.2/pt-table-sync.html