I did not show the post as a solution, just as an example of how to handle adding rows. I also pointed out where examples of deleting rows could be found.
Here is an example of adding rows and deleting, each row has an id, used to delete it
[{"id":"d3a74fc7ec1a4dcf","type":"ui_ui_control","z":"b9860b4b9de8c8da","name":"","events":"connect","x":180,"y":4580,"wires":[["02d9152c4da07bf6"]]},{"id":"02d9152c4da07bf6","type":"change","z":"b9860b4b9de8c8da","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"saved_data","tot":"flow"}],"action":"","property":"","from":"","to":"","reg":false,"x":360,"y":4580,"wires":[["eb9899fb546b228b"]]},{"id":"222ccd80df619936","type":"inject","z":"b9860b4b9de8c8da","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":220,"y":4520,"wires":[["02d9152c4da07bf6"]]},{"id":"eb9899fb546b228b","type":"ui_table","z":"b9860b4b9de8c8da","group":"2d4fe667.28f8ba","name":"","order":24,"width":"12","height":"6","columns":[{"field":"date","title":"Date","width":"","align":"left","formatter":"plaintext","formatterParams":{"target":"_blank"}},{"field":"distance","title":"Distance","width":"","align":"left","formatter":"plaintext","formatterParams":{"target":"_blank"}}],"outputs":0,"cts":false,"x":490,"y":4640,"wires":[]},{"id":"6081faa4eda4973e","type":"function","z":"b9860b4b9de8c8da","name":"function 25","func":"let col3 = (Math.random()*20).toFixed(2);\n\nlet table_data = flow.get(\"saved_data\") || [];\nlet table_length = table_data.length\nlet table_start = table_data[0] || {id:-1};\nlet table_end = table_data[table_length - 1]\nlet new_row = {\n \"id\": table_start.id + 1,\n \"date\": new Date().toISOString(),\n \"distance\": col3\n}\ntable_data.unshift(new_row);\n\nif (table_length > 9){\n table_data.pop();\n msg.payload = {\n command: \"deleteRow\",\n arguments: [table_end.id],\n returnPromise: true\n }\n node.send(msg);\n}\n\nmsg.payload = {\n command: \"addRow\",\n arguments: [\n new_row,\n true\n ],\n returnPromise: true\n}\n\nflow.set(\"saved_data\", table_data);\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":330,"y":4680,"wires":[["eb9899fb546b228b","61f646e276eea49a"]]},{"id":"ff659d158acf0bd4","type":"inject","z":"b9860b4b9de8c8da","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[{\"one\":1,\"two\":2},{\"one\":4,\"two\":5}]","payloadType":"json","x":170,"y":4660,"wires":[["6081faa4eda4973e"]]},{"id":"2f7ae52116812434","type":"ui_button","z":"b9860b4b9de8c8da","name":"Add Row","group":"2d4fe667.28f8ba","order":25,"width":0,"height":0,"passthru":false,"label":"button","tooltip":"","color":"","bgcolor":"","className":"","icon":"","payload":"","payloadType":"str","topic":"topic","topicType":"msg","x":180,"y":4700,"wires":[["6081faa4eda4973e"]]},{"id":"61f646e276eea49a","type":"debug","z":"b9860b4b9de8c8da","name":"debug 297","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":550,"y":4700,"wires":[]},{"id":"2d4fe667.28f8ba","type":"ui_group","name":"demo","tab":"1caa8458.b17814","order":2,"disp":true,"width":"12","collapse":false,"className":""},{"id":"1caa8458.b17814","type":"ui_tab","name":"Demo","icon":"dashboard","order":1,"disabled":false,"hidden":false}]