So let's clarify your statement "only perform an update ... if the input data is new".
If you only focus on relational keys, updating only when keys change, then you don't really "only perform ... if ... new", as the values for the key might have changed.
However, if you really might have the exact same value applied twice, and you do nothing the second time, the system is idempotent. Idempotent apis assure a state after they are called, which will not alter in a replay situation.
A quick example of a non-idempotent call (due to API design)
incrementCount();
while an example of an idempotent call (with an API permitting it)
setCount(5);
Note that not doing anything isn't a feature of the idempotent api, but rather an optimization which is safe to perform for idempotent calls. Basically, with an idempotent api, you can do the following
if (currentCommand.equals(lastCommand)) {
return;
}