diff --git a/hive/indexer/follow.py b/hive/indexer/follow.py
index 33461156ae9791184abe4dbd91e3308452d857f3..92deadf60bc027199f45e9073d9b53cda288dfc7 100644
--- a/hive/indexer/follow.py
+++ b/hive/indexer/follow.py
@@ -17,12 +17,42 @@ FOLLOWERS = 'followers'
 FOLLOWING = 'following'
 
 FOLLOW_ITEM_INSERT_QUERY = """
-    INSERT INTO hive_follows as hf (follower, following, created_at, state)
-    VALUES( :flr, :flg, :at, :state )
-    ON CONFLICT (follower, following) DO UPDATE SET state = (CASE hf.state
-                                                                when 0 then 0 -- 0 blocks possibility to update state 
-                                                              ELSE 1
-                                                          END)
+    INSERT INTO hive_follows as hf (follower, following, created_at, state, blacklisted, follow_blacklists)
+    VALUES 
+        (
+            :flr, 
+            :flg, 
+            :at, 
+            :state, 
+            (CASE :state
+                WHEN 3 THEN TRUE
+                WHEN 4 THEN FALSE
+                ELSE FALSE
+            END
+            ), 
+            (CASE :state
+                WHEN 3 THEN FALSE
+                WHEN 4 THEN TRUE
+                ELSE TRUE
+            END
+            )
+        )
+    ON CONFLICT (follower, following) DO UPDATE 
+        SET 
+            state = (CASE EXCLUDED.state 
+                        WHEN 0 THEN 0 -- 0 blocks possibility to update state 
+                        ELSE EXCLUDED.state
+                     END),
+            blacklisted = (CASE EXCLUDED.state 
+                              WHEN 3 THEN TRUE
+                              WHEN 5 THEN FALSE
+                              ELSE EXCLUDED.blacklisted
+                          END),
+            follow_blacklists = (CASE EXCLUDED.state 
+                                    WHEN 4 THEN TRUE
+                                    WHEN 6 THEN FALSE
+                                    ELSE EXCLUDED.follow_blacklists
+                                END)
     """
 
 def _flip_dict(dict_to_flip):
@@ -61,47 +91,15 @@ class Follow:
                 cls.follow_items_to_flush[k] = old_value
             else:
                 cls.follow_items_to_flush[k] = dict(
-                                                      flr = op['flr'],
-                                                      flg = op['flg'],
-                                                      state = op['state'],
-                                                      at = op['at'],
-                                                      blk=False,
-                                                      follow_blk=False)
+                                                      flr=op['flr'],
+                                                      flg=op['flg'],
+                                                      state=op['state'],
+                                                      at=op['at'])
 
         else:
             old_state = cls._get_follow_db_state(op['flr'], op['flg'])
-            if new_state == (old_state or 0):
-                return
-            sql = ''
-
             # insert or update state
-            if old_state is None:
-                sql = """INSERT INTO hive_follows (follower, following,
-                            created_at, state, blacklisted, follow_blacklists) VALUES (:flr, :flg, :at, :state, %s)"""
-                if new_state == 3:
-                    sql = sql % """ true, false """
-                elif new_state == 4:
-                    sql = sql % """ false, true """
-                else:
-                    sql = sql % """false, false"""
-            else:
-                if new_state < 3:
-                    sql = """UPDATE hive_follows SET state = :state
-                                WHERE follower = :flr AND following = :flg"""
-                elif new_state == 3:
-                    sql = """UPDATE hive_follows SET blacklisted = true
-                                WHERE follower = :flr AND following = :flg"""
-                elif new_state == 4:
-                    sql = """UPDATE hive_follows SET follow_blacklists = true
-                                WHERE follower = :flr AND following = :flg"""
-                elif new_state == 5:
-                    sql = """UPDATE hive_follows SET blacklisted = false
-                                WHERE follower = :flr AND following = :flg"""
-                elif new_state == 6:
-                    sql = """UPDATE hive_follows SET follow_blacklists = false
-                                WHERE follower = :flr AND following = :flg"""
-            DB.query(sql, **op)
-
+            DB.query(FOLLOW_ITEM_INSERT_QUERY, **op)
             if new_state == 1:
                 Follow.follow(op['flr'], op['flg'])
                 if old_state is None:
@@ -177,32 +175,49 @@ class Follow:
               VALUES """
 
         sql_postfix = """
-              ON CONFLICT ON CONSTRAINT hive_follows_pk DO UPDATE SET 
-                state = (CASE hf.state
-                        WHEN 0 THEN 0 -- 0 blocks possibility to update state 
-                        ELSE EXCLUDED.state
-                    END)
+              ON CONFLICT ON CONSTRAINT hive_follows_pk DO UPDATE 
+                SET 
+                    state = (CASE EXCLUDED.state 
+                                WHEN 0 THEN 0 -- 0 blocks possibility to update state 
+                                ELSE EXCLUDED.state
+                            END),
+                    blacklisted = (CASE EXCLUDED.state 
+                                    WHEN 3 THEN TRUE
+                                    WHEN 5 THEN FALSE
+                                    ELSE EXCLUDED.blacklisted
+                                END),
+                    follow_blacklists = (CASE EXCLUDED.state 
+                                            WHEN 4 THEN TRUE
+                                            WHEN 6 THEN FALSE
+                                            ELSE EXCLUDED.follow_blacklists
+                                        END)
               WHERE hf.following = EXCLUDED.following AND hf.follower = EXCLUDED.follower
               """
         values = []
         limit = 1000
         count = 0
-        for (k, follow_item) in cls.follow_items_to_flush.items():
-          if count < limit:
-            values.append("({}, {}, '{}', {}, {}, {})".format(follow_item['flr'], follow_item['flg'], follow_item['at'], follow_item['state'], follow_item['blk'], follow_item['follow_blk']))
-            count = count + 1
-          else:
+        for _, follow_item in cls.follow_items_to_flush.items():
+            if count < limit:
+                values.append("({}, {}, '{}', {}, {}, {})".format(follow_item['flr'], follow_item['flg'],
+                                                                  follow_item['at'], follow_item['state'],
+                                                                  follow_item['state'] == 3,
+                                                                  follow_item['state'] == 4))
+                count = count + 1
+            else:
+                query = sql_prefix + ",".join(values)
+                query += sql_postfix
+                DB.query(query)
+                values.clear()
+                values.append("({}, {}, '{}', {}, {}, {})".format(follow_item['flr'], follow_item['flg'],
+                                                                  follow_item['at'], follow_item['state'],
+                                                                  follow_item['state'] == 3,
+                                                                  follow_item['state'] == 4))
+                count = 1
+
+        if len(values) > 0:
             query = sql_prefix + ",".join(values)
             query += sql_postfix
             DB.query(query)
-            values.clear()
-            values.append("({}, {}, '{}', {}, {}, {})".format(follow_item['flr'], follow_item['flg'], follow_item['at'], follow_item['state'], follow_item['blk'], follow_item['follow_blk']))
-            count = 1
-
-        if len(values):
-          query = sql_prefix + ",".join(values)
-          query += sql_postfix
-          DB.query(query)
 
         cls.follow_items_to_flush.clear()