docs: def replace_blocks(self, blocks):
          """Replace multiple blocks. blocks must be a list of tuples where
          each tuple consists of (namespace, offset, key, data, flags)"""
          start = 0
          bulk_insert = self.bulk_insert
          blocks_len = len(blocks)
          select = 'SELECT ?,?,?,?,?'
          query = 'REPLACE INTO gauged_data (namespace, offset, `key`, ' \
              'data, flags) '
          execute = self.cursor.execute
          while start < blocks_len:
              rows = blocks[start:start+bulk_insert]
              params = [param for params in rows for param in params]
              insert = (select + ' UNION ') * (len(rows) - 1) + select
              execute(query + insert, params)
              start += bulk_insert