nodejs mysql amazing row duplicates

I have problem for node.js.

I read data for socket, using dgram.createSocket('udp4'). I parse data and write to mysql db (use https://npmjs.org/package/mysql) with code:

var result = {
                  CarID: "0094455",
                  Lat: 55.0405,
                  Lon: 82.981,
                  Time: 1373435075
};
connectionPool.getConnection(function(err, connection) {
     connection.query('SELECT * FROM lastPosition WHERE CarID = ? ORDER BY Time DESC LIMIT 1',[result.CarID], 
            function(err, rows, fields) {
          if (rows.length) {
            connection.query('UPDATE lastPosition SET ? WHERE CarID = ?', [result, result.CarID]);
          } else {
            connection.query('INSERT INTO lastPosition SET ?', result);
         }
        });
     connection.end();
});

The problem is that I see row duplicates in "lastPosition" table for key CarID, although this excludes the code. Where did I go wrong?

I fixed it with code:

connectionPool.getConnection(function(err, connection) {
     connection.query('INSERT INTO `lastPosition` SET ? ON DUPLICATE KEY UPDATE Lat=VALUES(Lat), Lon=VALUES(Lon), Time=VALUES(Time)', result);
     connection.end();
    });