diff --git a/src/lib/sqlite/Util.hxx b/src/lib/sqlite/Util.hxx
index 3a7d34a13..fbc773ed4 100644
--- a/src/lib/sqlite/Util.hxx
+++ b/src/lib/sqlite/Util.hxx
@@ -137,6 +137,17 @@ ExecuteChanges(sqlite3_stmt *stmt)
 	return sqlite3_changes(sqlite3_db_handle(stmt));
 }
 
+/**
+ * Wrapper for ExecuteChanges() that returns true if at least one row
+ * was modified.  Returns false if nothing was modified or if an error
+ * occurred.
+ */
+static inline bool
+ExecuteModified(sqlite3_stmt *stmt)
+{
+	return ExecuteChanges(stmt) > 0;
+}
+
 template<typename F>
 static inline bool
 ExecuteForEach(sqlite3_stmt *stmt, F &&f)
diff --git a/src/sticker/StickerDatabase.cxx b/src/sticker/StickerDatabase.cxx
index 049750608..fd5cbd3ae 100644
--- a/src/sticker/StickerDatabase.cxx
+++ b/src/sticker/StickerDatabase.cxx
@@ -224,15 +224,14 @@ sticker_update_value(const char *type, const char *uri,
 	if (!BindAll(stmt, value, type, uri, name))
 		return false;
 
-	int ret = ExecuteChanges(stmt);
-	if (ret < 0)
-		return false;
+	bool modified = ExecuteModified(stmt);
 
 	sqlite3_reset(stmt);
 	sqlite3_clear_bindings(stmt);
 
-	idle_add(IDLE_STICKER);
-	return ret > 0;
+	if (modified)
+		idle_add(IDLE_STICKER);
+	return modified;
 }
 
 static bool
@@ -291,14 +290,14 @@ sticker_delete(const char *type, const char *uri)
 	if (!BindAll(stmt, type, uri))
 		return false;
 
-	if (!ExecuteCommand(stmt))
-		return false;
+	bool modified = ExecuteModified(stmt);
 
 	sqlite3_reset(stmt);
 	sqlite3_clear_bindings(stmt);
 
-	idle_add(IDLE_STICKER);
-	return true;
+	if (modified)
+		idle_add(IDLE_STICKER);
+	return modified;
 }
 
 bool
@@ -313,15 +312,14 @@ sticker_delete_value(const char *type, const char *uri, const char *name)
 	if (!BindAll(stmt, type, uri, name))
 		return false;
 
-	int ret = ExecuteChanges(stmt);
-	if (ret < 0)
-		return false;
+	bool modified = ExecuteModified(stmt);
 
 	sqlite3_reset(stmt);
 	sqlite3_clear_bindings(stmt);
 
-	idle_add(IDLE_STICKER);
-	return ret > 0;
+	if (modified)
+		idle_add(IDLE_STICKER);
+	return modified;
 }
 
 void